import { defineStore } from 'pinia';

/**
 * 创建 Store 的命名规则：useXxxxStore
 * 参数一：store 的唯一表示
 * 参数二：配置项
 */
const useCounterStore = defineStore('counter', {
  // 相当于组件的 data
  state: () => {
    return {
      count: 0,
    };
  },

  // 相当于组件的 methods
  actions: {
    add() {
      this.count++;
    },
    addSync(state: number) {
      setTimeout(() => {
        this.count += state;
      }, 3000);
    },
  },

  // 相当于组件的 computed
  getters: {
    // pinia 的 ts 开发需要主动加上返回值的 类型注解,否则为 any
    double(): number {
      return this.count * 2;
    },
  },
});

// 导出仓库
export default useCounterStore;
